実践 Rust 入門 言語仕様から開発手法まで
https://m.media-amazon.com/images/I/51t+hDKJOvL.jpg
読書開始 : 2019-11-xx
読書終了 : 2020-05-03
内容メモ nobuoka.icon
はじめに
徐々に Rust に置き換えていくことも可能
Rust には 「所有権と借用規則」 という概念がある : 性能と安全性を両立するため 1 部 : 基礎編
1 章 : Rust の特徴
2 章 : はじめての Rust プログラム
3 章 : クイックツアー
コーディング規約
Rust Style Guideにしたがってコードを自動整形してくれる rustfmt というツール Rust の標準ライブラリの API ドキュメント
Web ブラウザで閲覧できる
ターミナルから rustup doc --std を実行すると、ローカルのツールチェインに含まれているドキュメントが Web ブラウザで開く
Rust 公式のドキュメントサイト () でも同じ内容のドキュメントを閲覧できる 引数にクロージャを取るときはジェネリクスにする必要がある クロージャの型は個々のクロージャで異なり、2 つとして同じ型がないため (クロージャが自分専用の環境を持つため)
クロージャは文脈によって Fn、FnMut、FnOnce トレイトの一部または全部を自動的に実装する
Rust では、マルチスレッドプログラムにおいてデータ競合が起こらないことをコンパイル時に確認するために 2 つのトレイトを提供 Sync トレイト : このトレイトを実装する型の値については、共有された複数の参照を通じて複数スレッドから並列に扱われても必ずメモリ安全であることを意味する
Send トレイト : このトレイトを実装する型の値については、スレッド間で安全に受け渡しができる
トレイト境界を + で繋げることで、型パラメータに複数のトレイト境界を設定できる
例 : pub fn sort_by<T, F>(x: &mut [T], comparator: &F) -> Result<(), String> where F: Sync + Fn(&T, &T) -> Ordering
4 章 : プリミティブ型